﻿ /*------------------------------------------------------------------
-- COPYRIGHT (C) 2010-2012  Atom
-- ALL RIGHTS RESERVED.
-- 兆尹科技
-- CREATE DATE: 2010/07/12
-- CREATE MAN:	姜新军
-- 增加CheckInvalids属性，可以获取执行Sql时，检测输入数据非法时输出错误信息。
-- MODIFY HISTORY:
-- MODIFY DATE:
-- MODIFY MAN:	
-- MODIFY DESC:
-- MODIFY DATE:
-- MODIFY MAN:	
-- MODIFY DESC:
---------------------------------------------------------------------*/


using System;
using System.Collections.Generic;

namespace Atom.Entity
{
    /// <summary>
    /// 执行Sql後的结果
    /// </summary>
    public class SqlExecuteResult
    {
        /// <summary>
        /// true : 执行成功; false:执行失败
        /// </summary>
        public bool Success { get; set; }

        /// <summary>
        /// 当Success属性为false的时候，这个属性就可以返回执行失败的异常。
        /// </summary>
        public Exception Exception { get; set; }

        /// <summary>
        /// 执行Sql输出的额外参数
        /// </summary>
        /// <remarks>需要的时候才设置，一般情况下为null。</remarks>
        public object TokenObject { get; set; }

        /// <summary>
        /// 检测输入的参数是否有误
        /// </summary>
        public List<CheckInvalidValue> CheckInvalids { get; set; }

        /// <summary>
        /// 根据检验参数错误结果，返回SqlExecuteResult
        /// </summary>
        /// <param name="invalids"></param>
        /// <returns></returns>
        public static SqlExecuteResult Create(List<CheckInvalidValue> invalids)
        {
            return new SqlExecuteResult()
            {
                Success = false,
                Exception = new CheckInvalidValueException(),
                CheckInvalids = invalids
            };
        }
    }
}
